package com.sunmi.usercenter.ui.view;

import java.io.File;

import com.sunmi.usercenter.bean.Info;
import com.sunmi.usercenter.bean.Task;

import android.content.Context;
import android.view.View;
import android.widget.ImageView;

/**
 * UI界面通用函数接口
 * @author longtao.li
 *
 */
public interface SuperUI {
	
	/**
	 * 获得上下文对象
	 * @return
	 */
	public Context getContext();
	
	/**
	 * 弹出土司
	 * @param msg
	 */
	public void showToastOnUI(String msg);
	
	/**
	 * UI线程执行一个任务
	 * 
	 * @param run
	 */
	public void runOnUI(Runnable run);
	
	/**
	 * 子线程执行一个任务
	 * 
	 * @param task
	 */
	public void executeTask(Task task);
	
	/**
	 * 子线程执行一个任务
	 * @param run
	 */
	public void executeTask(Runnable run);
	
	/**
	 * 显示进度条
	 */
	public void showProgressDialog();

	/**
	 * 隐藏进度条
	 */
	public void dismissProgressDialog();
	
	/**
	 * 隐藏输入法
	 * 
	 * @param context
	 * @param achor
	 */
	public void hideSoftInput(Context context, View achor);
	
	/**
	 * 是否有数据传递过来
	 * 
	 * @return
	 */
	public boolean hasInfo();
	
	/**
	 * 打开一个Activity
	 * 
	 * @param clazz
	 * @param info
	 */
	@SuppressWarnings("rawtypes")
	public void openActivity(final Class clazz, final Info info);
	
	
	/**
	 * 打开一个Activity for result
	 * 
	 * @param clazz
	 * @param info
	 */
	@SuppressWarnings("rawtypes")
	public void openActivity4Result(final Class clazz, final Info info,
			final int requestCode); 
	
	/**
	 * 返回数据到上一个activity
	 * 
	 * @param resultCode
	 * @param data
	 */
	@SuppressWarnings("rawtypes")
	public void closeActivity4Result(int resultCode, Info data);
	
	/**
	 * 加载图片
	 * 
	 * @param tuContainer
	 * @param item
	 */
	public void loadIMG(ImageView img, String url);
	
	/**
	 * 加载图片,指定错误图片
	 * 
	 * @param tuContainer
	 * @param item
	 */
	public void loadIMG(ImageView img, String url, int errorId);
	
	/**
	 * 加载图片,指定错误图片
	 * 
	 * @param tuContainer
	 * @param item
	 */
	public void loadIMG(ImageView img, String url, int placeholder, int errorId);
	
	/**
	 * 加载图片
	 * 
	 * @param tuContainer
	 * @param item
	 */
	public void loadIMG(ImageView img, File file);

	/**
	 * 加载本地图片
	 * 
	 * @param tuContainer
	 * @param item
	 */
	public void loadIMG(ImageView img, int id);
	
	/**
	 * 获得配置文件参数
	 * 
	 * @param id
	 * @return
	 */
	public float getDimens(int id);
	
	/**
	 * 获得配置文件参数
	 * 
	 * @param id
	 * @return
	 */
	public int getDimensPixelSize(int id);
	
	/**
	 * 获取点击事件监听
	 * @return
	 */
	public View.OnClickListener getClickListener();
	
}
